package 笔试规范;

import java.util.Arrays;
import java.util.Scanner;

/**
 * 输入二维数组
 * author: luyi
 * time: 2022/3/9 15:27
 */
public class ArrayInput {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        while (sc.hasNext()) {
            int n = sc.nextInt();
            int full = sc.nextInt();
            int avg = sc.nextInt();//第一行的输入

            int[][] nums = new int[n][2];

            /**
             * 0 5
             * 9 1
             * 8 1
             * 0 1
             * 9 100
             */
            for (int i = 0; i < n; i++) {
                nums[i][0] = sc.nextInt();
                nums[i][1] = sc.nextInt();
            }
        }
        while (sc.hasNext()) {
            int n = sc.nextInt();
            long l = sc.nextLong();
            long[] nums = new long[n];

            for (int i = 0; i < n; i++) {
                nums[i] = sc.nextLong();
            }

            Arrays.sort(nums);

            long gap = nums[1] - nums[0];
            for (int i = 1; i < n; i++) {
                gap = Math.max(gap, nums[i] - nums[i - 1]);
            }

            //下标最小和最大位置的路灯需要单独判断
            //如下标为3是最小，那么0-3这一段必须被覆盖到，所以最小下标必须单独判断
            gap = Math.max(gap, nums[0] * 2);
            gap = Math.max(gap, (l - nums[n - 1]) * 2);

            System.out.println(String.format("%.2f", gap / 2.0));
        }
    }
}
